package com.ruoyi.depot.service;

import com.ruoyi.depot.domain.vo.SelectedOrderVO;
import com.ruoyi.depot.domain.vo.VoOrdersProduct;

import java.util.List;

public interface VoOrdersProductService {

    /**
     * 通过采购单id来查询要入库的数据
     * @param voOrdersProduct 采购单id
     * @return 结果
     */
    public List<VoOrdersProduct> selectVoOrdersProductByOrdersId(VoOrdersProduct voOrdersProduct);

    /**
     * 通过采购单id来查询要入库的数据
     * @param voOrdersProduct 采购单id
     * @return 结果
     */
    public List<VoOrdersProduct> selectVoOrdersProductByOrderId(VoOrdersProduct voOrdersProduct);

    /**
     * 通过产品id来查询要入库的数据
     * @param voOrdersProduct
     * @return
     */
    public List<VoOrdersProduct> selectVoOrdersProductByProductId(VoOrdersProduct voOrdersProduct);

    /**
     * 取消入库
     * @param voOrdersProductList
     * @return
     */
    public int cancelPutAway(List<VoOrdersProduct> voOrdersProductList);

    /**
     * 添加入库产品
     * @param nickName
     * @param voOrdersProduct
     * @return
     */
    public int addInboundProducts(String nickName,VoOrdersProduct voOrdersProduct);

    /**
     * 通过id查询所以的产品明细数据
     * @param ids
     * @return
     */
    public List<VoOrdersProduct> selectByIds(Long[] ids);

    /**
     * 取消
     * @param voOrdersProductList
     * @return
     */
    public int updateDetailsStatus(List<VoOrdersProduct> voOrdersProductList);

    /**
     * 查询产品明细表的和修改明细表是否有对应的数据
     * @param ordersId
     * @return
     */
    public List<VoOrdersProduct> selectListProductId(Long ordersId);

    /**
     * 修改是否选择的状态
     * @param id
     * @return
     */
    public int updateProductIdDetailsStatus(Long id);

    /**
     * 修改的时候取消需要判断是否选择的状态
     * @param flay 判断状态是否选中
     * @param ordersId 采购单号id
     * @param productId 产品id
     * @return 结果
     */
    public int updateTestDetailsStatus(boolean flay,Long ordersId,Long productId);

    /**
     * 根据采购订单id查询出对应的采购商品数据
     *
     * @param ordersIds
     * @return
     */
    List<SelectedOrderVO> selectByReceiptOrdersIdList(Long[] ordersIds);
}
